<?php
/**
 * Form_Textarea
 *
 * класс Form_Textarea позволяет работать с <textarea>
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 2.1
 */
class Form_Textarea extends Form_Element
{
  protected $_rows = null; //число рок
  protected $_cols = null; //число столбцов

  function __construct(array $arrSettings = array(), $fieldName = null, $showInConstruct = false) {
    Service_Debug::setDebug();
    parent::__construct($arrSettings, $fieldName);
    if ($showInConstruct)
      $this->show();
  }
	/**
	 * Метод устанавливает свойство
	 *
	 * @param string $settingName
	 * @param mixed $settingValue
	 * @param string $additionalAllowedSettings
	 */
	public function setSetting($settingName, $settingValue, $additionalAllowedSettings = null) {
    switch ($settingName) {
    	case 'rows':
    		$this->setRows($settingValue);
    		break;
    	case 'cols':
    		$this->setCols($settingValue);
    		break;
    	default:
    	  parent::setSetting($settingName, $settingValue, '"rows", "cols"');
			  break;
    }
  }
  /**
   * задет число строк
   *
   * @param integer $rows
   */
  public function setRows($rows) {
    $this->_rows = $rows;
  }
  /**
   * задет число столбцов
   *
   * @param integer $cols
   */
  public function setCols($cols) {
    $this->_cols = $cols;
  }
  /**
   * Выводит элемент
   *
   */
  public function show() {
  	$this->checkForErrors();
  	echo '<textarea';
  	$this->showElementAttributes();
  	if (isset($this->_rows)) echo ' rows="' . $this->_rows . '"';
  	if (isset($this->_cols)) echo ' cols="' . $this->_cols . '"';
  	echo '>';
  	if (isset($this->_value)) echo $this->_value;
  	elseif (isset($this->_defaultValue)) echo $this->_defaultValue;
  	echo '</textarea>';
  	if ($this->_label) echo '<label for="' . $this->getId() . '">' . $this->_label . '</label>';
  	$this->showAfterElementMessage();
  }

  /**
   * Отменяет вывод атрибута value
   *
   */
  /*
  public function dontShowValue() {
    $this->_showValue = false;
  }
  */
}
?>